package com.ruoyi.app.service;

import com.ruoyi.app.domain.AppGoodsCart;
import com.ruoyi.app.domain.vo.AppGoodsCartVo;
import com.ruoyi.app.domain.bo.AppGoodsCartBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;

import java.util.Collection;
import java.util.List;

/**
 * APP商城购物车Service接口
 *
 * @author heike
 * @date 2023-03-02
 */
public interface IAppGoodsCartService {

    /**
     * 查询APP商城购物车
     */
    AppGoodsCartVo queryById(Long id);

    /**
     * 查询APP商城购物车列表
     */
    TableDataInfo<AppGoodsCartVo> queryPageList(AppGoodsCartBo bo, PageQuery pageQuery);

    /**
     * 查询APP商城购物车列表
     */
    List<AppGoodsCartVo> queryList(AppGoodsCartBo bo);

    /**
     * 查询用户指定商品的购物车信息
     *
     * @param userId 用户ID
     * @param goodId 商品ID
     * @return
     */
    AppGoodsCartVo queryOne(Long userId, Long goodId);

    /**
     * 新增APP商城购物车
     */
    Boolean insertByBo(AppGoodsCartBo bo);

    /**
     * 修改APP商城购物车
     */
    Boolean updateByBo(AppGoodsCartBo bo);


    /**
     * 校验并批量删除APP商城购物车信息
     */
    Boolean deleteById(Long id);

    /**
     * 校验并批量删除APP商城购物车信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 修改购物车商品数量
     *
     * @param id   商品ID
     * @param type 加减类型，0=加 1=减
     * @return
     */
    Boolean updateNumber(Long id, String type);
}
